The HTML5 based editor and template designer is typically used to create mail merge templates in web applications.
The data source for the Reports ribbon tab can be pre-loaded in the view using the LoadDataSet method. Using this data source, the available merge field and merge block drop-down lists are populated.
The following code shows how to create a DataSet in the controller that is stored in the ViewBag:
public ActionResult Index() | |
{ | |
DataSet ds = new DataSet(); | |
// create the outer table that has a relation | |
// to the child table "product" | |
DataTable dtReport = new DataTable("report"); | |
dtReport.Columns.Add("report_id", | |
Type.GetType("System.Int32")); | |
dtReport.Rows.Add(new object[] { 0 }); | |
ds.Tables.Add(dtReport); | |
// create a table "products" | |
DataTable dtProduct = new DataTable("product"); | |
dtProduct.Columns.Add(new DataColumn("report_id", | |
Type.GetType("System.Int32"))); | |
dtProduct.Columns.Add(new DataColumn("Product_ID", | |
Type.GetType("System.Int32"))); | |
dtProduct.Columns.Add(new DataColumn("Product_Name", | |
Type.GetType("System.String"))); | |
dtProduct.Columns.Add(new DataColumn("product_Price", | |
Type.GetType("System.Int32"))); | |
dtProduct.Rows.Add(new object[] { 0, 1, "Product 1", 1000 }); | |
dtProduct.Rows.Add(new object[] { 0, 2, "Product 2", 2000 }); | |
dtProduct.Rows.Add(new object[] { 0, 3, "Product 3", 3000 }); | |
ds.Tables.Add(dtProduct); | |
// create the relation | |
ds.Relations.Add(new DataRelation("relation1", | |
dtReport.Columns["report_id"], | |
dtProduct.Columns["report_id"], false)); | |
// fill the ViewBag and return the view | |
ViewBag.dataSet = ds; | |
return View(); | |
} |
In the view, the LoadDataSet method is used to load the stored DataSet from the ViewBag.
@Html.TXTextControl().TextControl().LoadDataSet( | |
(System.Data.DataSet)ViewBag.dataSet).Render() |
The drop-down lists are now pre-populated with the available merge fields and merge blocks: